
26.08.2016, 23:18
|
Интересующийся
|
|
Регистрация: 26.08.2016
Сообщений: 10
|
|
не работает отправка данных из <select multiple>
Привет всем! Помогите решить проблему.
Есть рабочий скрипт (прикреплен), все работает. Но если в поле "рубрика" поставить <select multiple name="rubric[]"> скрипт не работает.
нужно при добавлении товара присвоить несколько категорий.
Что я не так делаю? Что нужно исправить?
Последний раз редактировалось 7vano7, 26.08.2016 в 23:50.
Причина: вложены файлы
|
|

27.08.2016, 02:30
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
7vano7,
select multiple name=" rubric[]", то есть множественный выбор и серверу будет передан массив, а массив вот так пихнуть var select_cat = $(this).val(); серверу не получится. Либо преобразовывайте в json, либо в строку url параметров.
PS.
<select name="subcategory" id="subcategory" size=1>
<div id="subcat_select"></div>
</select>
такое возможно только в результате взрыва мозга. 
Последний раз редактировалось laimas, 27.08.2016 в 03:22.
|
|

27.08.2016, 13:25
|
Интересующийся
|
|
Регистрация: 26.08.2016
Сообщений: 10
|
|
спасибо, буду пробовать!
|
|

27.08.2016, 13:41
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от 7vano7
|
буду пробовать
|
Только не таким методом - есть форма, поля ее именованные, зачем же лишнее?
|
|

27.08.2016, 13:52
|
Интересующийся
|
|
Регистрация: 26.08.2016
Сообщений: 10
|
|
спасибо Laimas!!
да,
<select name="subcategory" id="subcategory" size=1>
<div id="subcat_select"></div>
</select>
переделал (убрал блок div), спасибо что заметили :-)
Я в js еще новичек...
|
|

27.08.2016, 13:58
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от 7vano7
|
Я в js еще новичек...
|
Дело не в JS, а в том как используется форма, вернее не используется.
|
|

27.08.2016, 14:24
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
7vano7,
то что select может содержать только элементы option определяется не JS, а HTML.
Но как вы используете список. У вас список имеет имя name="rubric[]", а серверу передается его выбранные опции почему-то под ключом cat, почему? Почему сразу не именовать список не rubric, а cat?
Вы в скриптах создаете множество переменных-посредников, что затрудняет сопровождение кода. К тому же, для каждого списка вы пишите отдельную функцию обработчик, но обращаетесь к одному и тому же серверному скрипту. Но все эти обработчики передают разные параметры запроса, следовательно должен быть и один скрипт обработчик. Для вас как начинающего это сразу возможно и не сделать, но привыкайте продумывать взаимоотношения сервера и клиента.
Клиент, это терминал, мозги на сервере, он задает правила и определяет то, что хотел бы получить от клиента. Если при этом сервер определил имена полей, связав их с конкретной таблицей базы, строит по этим именам форму, то при необходимости изменения этих имен, достаточно будет изменить это на сервере в одном месте. Производить изменения в клиентском скрипте при этом менять не потребуется, как не потребуется вносить изменения и в серверном скрипте принимающем данные клиента для обработки.
|
|

27.08.2016, 14:43
|
Интересующийся
|
|
Регистрация: 26.08.2016
Сообщений: 10
|
|
Спасибо Вам за информацию! Буду стремиться делать правильно!
|
|

29.08.2016, 23:17
|
Интересующийся
|
|
Регистрация: 26.08.2016
Сообщений: 10
|
|
спасибо за помощь, Laimas , все работает))
|
|

30.08.2016, 02:35
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от 7vano7
|
все работает
|
до поры, до времени  , менять код обработки запросов клиента и обязательно.
|
|
|
|